/* 创建类似JS的存储键值对 */
#ifndef _STORAGE_H_
#define _STORAGE_H_

#include <LittleFS.h>
#include <Arduino.h>
class LocalStorage {
public:
  // 获取单例实例
  static LocalStorage& getInstance();

  // 存储键值对
  void setItem(const String& key, const String& value);

  // 获取值，优先从缓存中获取
  String getItem(const String& key);

  // 移除键值对
  void removeItem(const String& key);

  // 清空所有存储
  void clear();

private:
  // 私有构造函数，防止外部实例化
  LocalStorage();
  
  String pathDir = "/config";  //默认目录
  String cacheKey;              // 缓存的键
  String cacheValue;            // 缓存的值
  //void clearDirectory(File dir);
  // 禁止拷贝构造和赋值
  LocalStorage(const LocalStorage&) = delete;
  LocalStorage& operator=(const LocalStorage&) = delete;
};
/* 引入库就声明好类对象实例 */
#define localStorage LocalStorage::getInstance()
#endif  //_STORAGE_H_